C++ lets us write powerful systems-and equally powerful bugs. Its weak typing gives us freedom, but not always safety.
In this talk I'll argue that typing not a computing concept, but a linguistic one. By designing expressive types-from basic ints to rich class structures-we can shift from "I think this is right" to "I know this is right," catching errors at compile time instead of runtime.
Expect practical examples, a few missteps (mine, mostly), and techniques to make your compiler a partner in correctness-not just a passive syntax checker.
Chris Gearing
I’m a Principle Software Engineer at Mobileye who prefers the quiet satisfaction of solving problems through well-crafted code. I gravitate toward C++, where I enjoy the challenge of designing systems that are both expressive and maintainable. I take a certain pride in writing code that improves with age—becoming more malleable, less brittle, and ideally, less surprising.
These days, I spend more time trying to help others appreciate software as a form of engineering with artistic undertones. When done thoughtfully, it’s both powerful and rewarding—though “thoughtfully” is a vague term that defies precise definition, which is probably why I keep revisiting it.
When I’m not writing or refactoring code, I’m often on a motorcycle, enjoying the kind of speed that doesn’t involve a compiler.
In this talk, we will take a journey through two complementary ways to utilize hardware parallelism in C++. We will begin with SIMD (Single Instruction, Multiple Data), where one instruction processes a whole batch of values at once. The path will run from hand-written vectorized assembly, to compiler intrinsics, to libraries, and finally to auto-parallelization, with examples of what works, what doesn’t, and how to verify the compiler’s choices. We will see why SIMD shines in structured compute-bound code, and why it sometimes falls short.
We will then broaden the scope to memory-level parallelism (MLP) - a hardware feature that overlaps multiple independent memory accesses to reduce overall latency. We will discuss how to take advantage of MLP in C++ through bulk operations and APIs, and show how this approach can bring substantial benefits even in less structured code with irregular memory access patterns.
Eran Gilad
Eran Gilad is a software engineer at Regatta Data, where he works on one of the most fascinating areas of software development: database internals. Before diving deep into database engineering, Eran was a principal research engineer at Yahoo Research and a member of a systems research group. He holds a PhD in Computer Science from the Technion, where his work centered on various aspects of parallel programming and execution.
Beyond his professional work, Eran is passionate about developer communities. He co-organizes the Core C++ conference, the Haifa::C++ meetup group, and the Medabrim C++ WhatsApp group. His involvement in these communities stems from his first job experience, where he was the sole C++ developer at his company for several years.
After 2 full decades of multiple efforts aimed at introducing a contracts feature into the C++ language, contracts have finally been voted into C++26 at the February 2026 C++ Standards Committee (WG21) meeting in Hagenberg, Austria. To be more precise – confirmation into the standard was given to the Contracts MVP – Minimal Viable Product. This talk will bring you the highlights of the MVP and if time allows also some forecasted features beyond it. We will shift our focus away from the theoretical background behind contracts and more into some select minutiae and pitfalls encountered along the tortuous process of developing this MVP, while also inspecting the most important things future contracts users should be aware of. And you can also expect some am(a/u)sement along the way!
Andrei Zissu
Andrei Zissu is a veteran cross-industry C++ developer, notably having worked on low-level reverse engineering systems employing API hooking, DLL injection and other advanced techniques. Andrei is currently Windows Software Developer Tech Lead at Morphisec, an Israeli anti-ransomware provider utilizing bleeding edge Automated Moving Target Defense technology. In early 2022 Andrei joined the WG21 standards committee, where he has since been an active member in SG21 (the WG21 Contracts Subgroup) in its efforts to produce a Contracts MVP in time for C++26, and has also closely followed reflection progress into C++26./p>
AI is everywhere. But how can we use it to make an impact?
In this talk, we'll dive into how AI tools are changing the game for C++ developers. Drawing from real-world deployment experience within Microsoft, I’ll introduce you to a framework developed to rigorously analyze AI tools, and introduce practical use cases, unexpected challenges, and their applicability to C++ workflows.
During the talk we’ll explore and get familiar with the latest available tools. We’ll also address limitations, best practices, and learn how to integrate these tools into production-level development environments.
Whether you're skeptical or excited, this session will leave you with a grounded understanding of where AI tooling stands today, what it can (and can't) do for your C++ projects, and how to prepare for the next wave of innovation.
Inbal Levi
Inbal Levi is a Lead Software Engineer with an interest in code readability, compilers, language and software design. She is an active member of the ISO C++ Standards Committee as Library Evolution Work Group Chair, and as the ISO C++ Israeli NB Chair.
Inbal is also a director at ISO C++ Foundation and the Boost Foundation and puts effort into evolving both the local and international C++ communities, as an organizer of the CoreC++ conference and meetup group, and as the program chair of C++Now.
Many C++ developers can spend years, sometimes even a decade, without ever touching templates. In some workplaces, templates are even forbidden, treated as a dangerous curse requiring rare expertise.
This fun talk takes that “terrifying” subject and shows that templates are not as scary as they seem, and can even become your friend. We’ll start with something seemingly intimidating like NTTPs (Non-Type Template Parameters) and slowly dive into more “monstrous” code examples. Step by step, every piece will be broken down and explained in detail, turning fear into understanding.
This talk has only one requirement for attendance: a smile, so bring one with you :)
Coral Kashri
A passionate C++ developer, author of C++Senioreas blog, and an active member of the ISO C++ committee.
C++26 introduces new reflection capabilities into the language. In this talk we will explore some of the things that we can already do with these new capabilities, as well as some future enhancements that might prove useful.
The rise of large language models in recent years is having a big impact on our everyday lives as developers - and that includes the hiring process. In this talk we will explore what are the qualities that are (or should) be looked for in a candidate today, and we can test and demonstrate them.
Noam Weiss
Working with C++ for over two decades. Still excited about a brilliant code.
C++ is a powerful language, but with great power comes… plenty of pitfalls. Memory management quirks (even when using smart pointers), subtle undefined behaviors, and bug-prone code can silently introduce dangerous behaviors, only to surface at the worst possible moment in production. In this talk, we’ll explore some notorious C++ real life pitfalls and sharp edges, discussing strategies to avoid them and write safer, more resilient code.
Amir Kirsh
Amir Kirsh is a C++ lecturer at the Academic College of Tel-Aviv-Yaffo and Tel-Aviv University, previously the Chief Programmer at Comverse, after being CTO and VP R&D at a startup acquired by Comverse. Amir is also co-organizer of the annual Core C++ conference and the Core C++ meetup group.
The addition of "Senders and Receivers" (a.k.a execution) to C++26 is a nudge for C++ practitioners to consider utilizing Structured Concurrency princinples when designing and implementing concurrent systems. Structured Concurrency is a well reasoned methodology, described by various C++ experts in the past, focused on composability, wide applicability, error tollerance and on correct fit with the rest of the language, most notably C++20 coroutines. The challenge that we'll face in this talk is that of taking existing concurrent and systems which were not originally designed with Structured Concurrency in mind, and making the gradual changes towards that design and towards more natural use of senders, receivers and coroutines. Join me in a tour of various techniques and tips for modernizing legacy concurrent systems, as we prepare for adopting the C++26 standard.
Roi Barkan
Professional software developer and architect since 2000, Roi's main focus throughout his career was on high performance and distributed systems, implementing complex and innovative algorithms. Roi is the SVP technologies of Istra Research, where he helps creating low latency financial systems. Prior to working for Istra Research, Roi spent 12 years in software development, architecture and management in the IT Security field. Roi received his B.A in Computer Science with high honors from the Technion in Israel, and his executive MBA from Tel Aviv University.
As modern C++ projects grow in complexity, effective dependency management becomes essential for maintaining code quality and ensuring seamless integration of external libraries.
We will explore various strategies for defining, locating, and linking dependencies within CMake. Attendees will gain insights into best practices for organizing dependencies.
We will highlight common pitfalls and provide solutions to streamline the dependency management process. By the end of the session, participants will be equipped with the knowledge and tools to effectively manage dependencies in their CMake-based projects, leading to improved build reliability and enhanced collaboration within development teams.
Alex Kushnir
Alex Kushnir, principal software engineer with Johnson & Johnson MedTech. Experienced in embedded software development, with focus on software infrastructures, tools and methodologies.
B.Sc. in Electronics and Computer engineering
We are going to explore the surprising creative potential of AI hallucinations in generative AI models like DALL-E. While typically viewed as flaws in deep learning, these "errors" can produce unexpected artistic brilliance. By comparing human imagination with AI’s pattern-based logic, the piece questions whether AI's falsehoods might actually be a new kind of creativity. It challenges how we define truth, error and inspiration in the age of artificial intelligence.
Maria Piterberg
Team lead at Habana Labs (an Intel company), specializing in AI training Runtime for custom accelerators (https://www.intel.com/content/www/us/en/products/details/processors/ai-accelerators/gaudi.html). An expert in large-scale deep learning infrastructure, including memory management, graph execution, and synchronization. Experienced in distributed training and communication libraries such as HCCL, deep technical background in performance optimization. Bachelor of Science in Computer Science. Semi-professional artist in digital and classic art.
In this talk I'll describe a few already-known pitfalls in the new C++26 feature named contracts.
While the Contract facility gives a good way to find bugs, still it bears a few already known pitfalls. The talk shows theoretical alongside practical pitfalls when using contracts. All examples in the talk are taken from existing compiler implementations and exiting code which is open sourced and can be further investigated by the audience.
Ran Regev
Software and C++ Developer in the last 25+ years Active in the ISO C++ Committee
Memory remains the last piece of hardware that cannot be scaled on-demand. Researchers and practitioners alike have been chasing the idea of disaggregated memory but no practical solution was possible until the recent introduction of the memory fabric protocols such as CAPI, CCIX, and CXL. A new era is beginning in which shared memory with hardware coherency is on the horizon. This is a game changer that has been anticipated for decades but only recently became possible.
The new technology impacts the whole software stack from operating systems to APIs and applications. I describe some of the exciting features that can now be implemented and outline the main issues that must be addressed before the dream can be fully realized.
Joel Nider
Joel is a programmer, researcher and enthusiast. Over the years, he has programmed systems from microcontrollers to supercomputers. Most recently, he has been developing and experimenting with advanced memory technologies such as processing-in-memory, persistent memory and disaggregated memory. Sometimes publishing papers and sometimes publishing code, he is always open to discuss new ideas with others in the field.
C++20’s ranges library brings a fresh, expressive way to work with sequences, letting you write declarative and efficient code. If you already know what an iterator is and have used std::vector and std::for_each, or similar, you’re ready to level up.
In this session, we’ll explore the “plain vanilla” of ranges: what's new compared to the traditional iterator-based algorithms, how views enable elegant data transformations without unnecessary copies, and how to compose operations in a clean, pipeline-like style. The talk is aimed for beginners and will focus on the simple scenarios, no deep dives into obscure corners or tricky pitfalls, just the core ideas you need, to start using ranges effectively and with confidence.
Nathanel Green
My name is Nathanel and I am the CEO and Co-founder of Alphapulse, a medical device startup company. Previously, I worked as a software engineer and team leader in various companies, and I was the Co-founder and former CTO of Darebiz AI (Acquired). With over ten years of experience in a wide range of programming languages and technologies, I have also taught theoretical and practical software topics at different companies in the industry.
I hold degrees in computer science and electrical engineering from Tel Aviv University. I live in Ramat Gan, married and have two wonderful girls.
Atomics give us a somewhat clear API for concurrency-safe shared values. But how does the hardware work? Are there any other things we should be wary of? How can we--as C++ enthusiasts--use concurrency safely?
Ofek Shochat
Engineer by heart, menace by night. Love building stuff and understanding how other stuff works--particularly low-level details, and systems.
Synchronizing tasks and actions on realtime, and especially Hard-RT systems, is crucial. On the other hand, time constraints, together with limited resources, make programmers sweat trying not to waste a single unnecessary processor cycle.
Here comes a problem: most of the RT-Embedded programmers are not just any programmers. They know more about memory, CPUs, buses, OS, I/O, especially those they are working with. And they try to harness this knowledge to their efforts.
Careful crafting of the mechanisms might indeed serve the goal and keep the system within boundaries. Sometimes, however, trying to find clever and lightweight solutions might lead to a broken system. In other cases, the code might perfectly work at the moment, but be very fragile so that future changes might break it in a way that the programmer might miss. And synchronization problems are the nastiest of them all: they pretend to be nice and sweet when you test them, and only love to explode in production.
In this talk, we will go over common real-world RT synchronization practices that might put the current or future code in danger.
Mike Lindner
A SW Manager and Architect; I've been in love with C++ for over three decades, ever since I was 14. My true passion is building systems that are meant to last. I share my experience on my blog, "Architect in Slippers" (sw-arch.blog).
In this talk we will introduce coroutines. What they are, what they're not, and how to use them.
We wil go over why use coroutines: * Co-operative scheduling: You have control when to work and when to yield * No locking necessary * Each co-routing has its own natural control flow - no state machine needed
And show some example use-cases: * Real-time calculation (e.g., in games, mathematics libraries) * Co-operative multitasking, e.g., in a web server * Generators (e.g., infinite lists)
And have some real code examples.
Omer Anson
Omer Anson is a seasoned low-level software developer. He has many years of experience developing in C++, Linux, networking, and security.
Compilers like objects in memory to be aligned, and may even add padding to make it so. But why? And what happens if your objects are not aligned? And if aligning is so good, maybe we should add more? In this talk we'll discuss the rules of alignment and the relevant tools C++ provides, what happens if you break alignment rules and how to make sure your code always stays on the safe side. ABI will be mentioned and briefly discussed, as well as other relevant C++ topics. We will even encounter a curious connection of alignment rules with musical notation. Join us for a journey that will, hopefully, end with all structs aligned.
Tomer Vromen
Senior Software Engineer at Dell, working on software-defined scaled storage. Passionate about good software practices, correct design (both high & low level), as well as the theoretical stuff.
Atomics give us a somewhat clear API for concurrency-safe shared values. But how does the hardware work? Are there any other things we should be wary of? How can we--as C++ enthusiasts--use concurrency safely?
Shar-yashuv Giat
The book Design Patterns: Elements of Reusable Object-Oriented Software by the "Gang of Four" is regarded as one of the important sources for object-oriented design theory. However, since it was published in the 1990s C++ language has evolved, and the code samples given in the book looks outdated from a modern C++ perspective. In this presentation, I'll go through the most useful patterns and show the effects of various features of C++ language versions. Ranging from small features that make your code more readable and maintainable, to total code rewrites that keeps the original patterns.
"AI can write code for you" has become a ubiquitous claim in today's tech landscape. But how does this promise hold up in practice?
This presentation examines real-world encounters with AI chatbots in coding scenarios, exploring curious phenomena including emojis, flattery, SOOP, and other surprising, sometimes amusing, patterns in AI-generated code. Drawing from these practical encounters, I'll present key findings about the current state of AI-assisted programming and what these interactions reveal about both the capabilities and quirks of today's coding AI systems.
Yair Friedman
Yair is a seasoned software engineer and architect with over three decades of C++ expertise, specializing in embedded systems, co-processor software design, and application interfaces. As an expert in legacy code modernization, Yair has developed proven methodologies for safely migrating systems to modern C++ standards. His approach minimizes risk while maximizing the benefits of modern language features. Beyond development, Yair is an educator delivering training programs on modern C++ features. Through his courses, he successfully motivates companies to embrace modern C++ practices, helping teams achieve improved performance and maintainability. Yair's expertise extends to software security as a defensive cyber-security specialist, implementing robust measures that complicate potential attack vectors through proactive defensive programming.
Outside his professional work, Yair maintains a scholarly interest in ancient Semitic languages.
For years, writing C++ code has often required hundreds of lines of boilerplate—templates, definitions, and technical syntax—just to express the core business logic. However, recent innovations in C++20 and C++23 are transforming the landscape. Features like the Ranges library, designated initializers, extended constexpr, deducing this, and std::expected finally allow developers to focus on what their code does, not on the mechanics of getting it to compile. This talk will explore how these modern C++ features significantly reduce boilerplate, enabling more efficient and concise code. We will demonstrate how to refactor legacy code, showcasing how the transition to a more expressive and modern language improves readability, reduces bugs, and ultimately saves valuable development time.
Miri Ben-Nissan
Ph.D. in computer science from Bar-Ilan University. 15+ years as software engineer, mostly in C++. I give trainings in C++ to companies.
As software developers we love elegant code. We use templates, polymorphism and type erasure; We slice and dice our classes to maintain SRP (Single Responsibility Principle) and we generalize for every conceivable future scenario. We are responsible engineers after all and we most definitely know what’s coming, so naturally we lay the groundwork, sometimes for things that won’t happen until the heat death of the universe.
I’m guessing you’ve all been there: you dive into a codebase and suddenly it’s less “reading code” and more “archeological expedition”. You’re carefully brushing away layers of inheritance and indirection to figure out what a function actually does, who implemented it, and on particularly fun days trying to guess which one of the three different implementations is actually called at runtime.
In this talk I’ll play devil’s advocate to ask “Do we really need all of this?”. We’ll examine examples inspired by real-world C++ code where well-intentioned design using language features such as inheritance hierarchies, deep template metaprogramming and generalized abstractions ended up adding more friction than flexibility.
Attendees will leave with a handy checklist to help spot over-engineered designs and strategy suggestions for balancing flexibility with maintainability in modern C++.
Whether you’ve inherited a complex legacy codebase or built one yourself, this session will give you tools (and cautionary tales) to keep your future codebase clean, clear and kind to whoever comes next – including you.
Adi Ben David
Senior software engineer and a mother of 2. Have worked in the industry for almost a decade and will defend C++ against anyone who tries to put it down. Cyber security enthusiast by day and dancer by night. In my (not so) spare time I volunteer in organizations that aim at helping more women join our industry.
In modern microprocessor R&D cycle, verification teams face a relentless challenge: exploding design complexity, shrinking schedules, and ever-tighter compute budgets.
This talk reveals how Intel’s verification organization integrates AI-driven tooling into the heart of the verification cycle - boosting efficiency and quality.
This presentation showcases how classic AI tools developed at Intel enhance four key areas of the verification cycle: 1. optimizing gating tests for specific branches 2. improving weekly regression coverage within strict compute budgets 3. targeting failure clusters through intelligent stimuli generation 4. reproducing rare failures by tracking historically-hit but currently-missed behaviors
Lotem Dalal
I am a problem-solver, leader and mentor, with a unique journey in the hardware industry. My diverse background - spanning board design integration, intelligence, and chip verification - gives me a fresh perspective on tackling complex challenges.
Last year, we explored why C++20 is not just a “future standard,” but a powerful and practical tool you should already be using. If you haven’t adopted it yet, now’s the time.
But the C++ journey doesn’t stop there—C++23 is here, it’s maturing, and it’s packed with new features that deserve your attention. In this session, we’ll explore the most practical, accessible, and impactful additions in C++23—features that you can actually start using, not just in toy projects but in real-world codebases.
We’ll compare C++23 to its predecessors, highlight key language and library improvements, and see how these tools can simplify your development, improve readability, and bring more joy to modern C++.
Whether you're already deep in C++20 or still catching up, this talk will help you chart your course into C++23 with confidence and clarity.
Alex Dathskovsky
Alex Dathskovsky has over 17 years of software development experience, working on systems, low-level generic tools and high-level applications. Alex has worked as an integration/software developer at Elbit, senior software developer at Rafael, technical leader at Axxana, Software manager at Abbott Israel and now a group manager a technical manager at Speedata.io an Exciting startup the will change Big Data and analytics as we know it .On His current Job Alex is developing a new CPU/APU system working with C++20, Massive metaprogramming and development of LLVM to create the next Big thing for Big Data. Alex is a C++ expert with a strong experience in template meta-programming. Alex also teaches a course about the new features of modern C++, trying to motivate companies to move to the latest standards
What does it take to serve a chatbot with billions of parameters in real time - without burning a hole in your data-center budget? Large Language Models (LLMs) are powering the next wave of AI applications but serving them efficiently at scale brings unique performance and cost challenges. This talk offers a systems-level look at the main bottlenecks in LLM inference, from GPU memory limits to inter-node communication, and the architectural innovations addressing them.
We’ll cover three key techniques: KV-cache offloading to relieve GPU pressure, prefill-decode disaggregation to boost throughput, and speculative decoding to speed generation in inference engines like vLLM and SGLang. We’ll also explore the tradeoffs between user experience and system efficiency, such as latency versus hardware utilization.
While often implemented in Python and CUDA, these performance principles: memory hierarchy awareness, data movement optimization, and throughput–latency balancing, are directly relevant to C++ developers building high-performance systems.
Eshcar Hillel
Eshcar Hillel is leading AI research at Pliops, driving storage solutions for emerging workloads such as generative AI, deep learning recommender systems, and learning systems in general.
Eshcar specializes in theory and practice of distributed systems and in parallel computing. Prior to joining Pliops, Eshcar was a research director at Yahoo Research, was a contributor and PMC of open source projects, published over 25 scientific papers in leading academic venues and holds several U.S. patents. She holds a Ph.D. in computer science from the Technion, Israel Institute of Technology.
Key Takeaways from the Transition to the Bazel Build System at Mobileye.
Vlad Dovlekaev
Software Architect in Mobileye.
Mutual exclusion (mutex) locks are among the most common building blocks in multi-threaded programming. While building concurrent systems, we don't often consider how they actually work - but sometimes there are big gains to be had by looking under the covers.
At Fireblocks, we recently had the opportunity to unlock major performance improvements by designing our own locking primitive optimized for the unique constraints of the Intel(R) SGX environment. This talk will cover why and how we did this, and will give you an idea of when such a project could make sense for you.
Igor Khanin
Senior Core Engineer and Tech Lead at Fireblocks, and is a strong believer that performance improvements can lead to a qualitative advantage.
Mutual exclusion (mutex) locks are among the most common building blocks in multi-threaded programming. While building concurrent systems, we don't often consider how they actually work - but sometimes there are big gains to be had by looking under the covers.
At Fireblocks, we recently had the opportunity to unlock major performance improvements by designing our own locking primitive optimized for the unique constraints of the Intel(R) SGX environment. This talk will cover why and how we did this, and will give you an idea of when such a project could make sense for you.
Ben Liderman
System Architect at Fireblocks, and previously led its confidential computing infrastructure team.
We all know C++ can be used everywhere? It can go as low level as assembly and as high level as pythonic pseudocode. But how does it bode with early boot code of embedded systems?
Elazar Leibovich
System programming at Akamai, Oracle, Vastdata, Nextsilicon, Intel, Crusoe
This beginner-friendly presentation introduces virtual table vulnerabilities in C++ through a practical CTF challenge walkthrough. We explore how virtual function calls work in memory, demonstrate a real CTF problem involving vtable corruption, and show basic protection methods. The talk covers step-by-step exploitation of a vulnerable program, explains how attackers redirect virtual function calls, and demonstrates modern defensive techniques. Attendees will learn fundamental security concepts through a hands-on CTF example without requiring prior exploitation experience.
Sivan Zohar-Kotzer
Cloud Researcher at Varonis. Earlier: Software Developer at Cyfair-labs (Android research infrastructure), Test Engineer at CheckPoint Software Technologies Active in CTF competitions. Cyber Instructor at Magshimim-The National Cyber Program, Cyber Security and network expert at IDF Technological Unit 81, Infrastructure Engineer at IDF Technological Unit 81. Bachelor of Computer Science, Tel Aviv University (Schulich scholarship)